package com.cloud.observer.annotation;



import java.lang.annotation.*;

/**
 * @author: create by God of SJF
 * @version: v1.0
 * @description: com.cloud.observer
 * @date:2021/1/12
 */

@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface ScheduledObserver {

    int delayNumLimit() default 1;

    int delayTimeLimit() default 1;

    int executeCycle();

    ExecuteHandlerCommand[] executeHandlerCommands() ;

    SuccessHandlerCommand[] successHandlerCommands() default {} ;

    ExceptionHandlerCommand[] exceptionHandlerCommands() default {} ;

    boolean succeedAlert() default false;

    boolean errorWarning() default true;

}
